// createStore：生成store实例对象  new Store()
import { createStore } from 'vuex'
import user from './modules/user'
import cart from './modules/cart'
import category from './modules/category'
import createPersistedstate from 'vuex-persistedstate'
export default createStore({
  // 模块化
  modules: {
    user,
    cart,
    category
  },
  // 配置插件 在原有的基础上做功能的增强
  plugins: [
    createPersistedstate({
      // 事实上只要你给我提供一个对象，对象中有三个方法存，取，删
      // get/set/remove我就会以你提供的方法为主，按照你自定义的
      // 存取方法做自动操作 不走默认
      // 前端 不管是session/ls/cookie/其它的前端存储 存取删接口方式都是一致的
      // 购物车 -> 数据量比较大 cookie 不够用  -> ls
      // storage: {
      //   getItem: key => Cookies.get(key),
      //   setItem: (key, value) => Cookies.set(key, value, { expires: 7 }),
      //   removeItem: key => Cookies.remove(key)
      // },
      key: 'erabbit-client-pc-store', // 存入本地时所用的key
      paths: ['user', 'cart'] // 哪些模块中的数据需要持久化 就把名称写过来
    })
  ]
})
